// 链路调测
import vueInstance from '@/main.js'
import { handleEmpty } from '@/utils/common'

const getUserId = () => {
  return vueInstance.$store.getters.getUserId
}

/**
 * 参数定义
 *
 * @param api
 *            接口地址
 * @param item
 *            操作项（必须是相应页面的菜单名称，否则操作日志页面根据操作项下拉列表会对应不上）
 * @param terminal
 *            操作命令（具体操作名称，如：登录，查询，修改设备名称等）
 * @param object
 *            操作对象（具体操作的对象名称，如：设备名，区域名等）
 * @param currentUserId
 *            当前操作用户ID
 * @param i18nKey
 *            国际化里面的key
 * @param reqData
 *            接口里携带的参数
 */

export default [
  {
    api: '/linkTestPlan/add',
    item: 'MENU_ROUTINE_TEST', // 例行检测
    terminal: 'ADD_TIME_TEST', // 新增例行检测
    i18nKey: 'ADD_TIME_TEST_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.object = reqData.planName
      this.terminal = 'ADD_TIME_TEST'
      this.i18nKey = 'ADD_TIME_TEST_LOG'
      if (reqData.operateType && reqData.operateType === 'copy') {
        this.terminal = 'COPY_TIME_TEST'
        this.i18nKey = 'COPY_TIME_TEST_LOG'
        this.object = reqData.oldPlanName
      }
      const {
        planName = '',
        oldPlanName = ''
      } = reqData
      return JSON.stringify({
        planName,
        oldPlanName,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/linkTestPlan/mod',
    item: 'MENU_ROUTINE_TEST', // 例行检测
    terminal: 'MOD_TIME_TEST', // 修改例行检测
    i18nKey: 'MOD_TIME_TEST_LOG',
    object: '/',
    formatter(reqData) {
      // 恢复默认值
      this.terminal = 'MOD_TIME_TEST'
      this.i18nKey = 'MOD_TIME_TEST_LOG'
      const currentUserId = getUserId() // 当前平台登录用户
      if (reqData.operateType && reqData.operateType === 'copy') {
        this.terminal = 'REPLICATION_PLAN'
        this.i18nKey = 'REPLICATION_PLAN_LOG'
      }
      const { planName = '' } = reqData
      this.object = planName
      return JSON.stringify({
        planName,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/linkTestPlan/del',
    item: 'MENU_ROUTINE_TEST', // 例行检测
    terminal: 'DEL_TIME_TEST', // 删除例行检测
    i18nKey: 'DEL_TIME_TEST_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const { planName = '' } = reqData
      this.object = planName
      return JSON.stringify({
        planName,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/otdrTestResult/setRefCurve',
    item: 'MENU_TEST_RECORD', // 检测记录
    terminal: 'SAVE_CURVE', // 保存为参考曲线
    i18nKey: 'SAVE_CURVE_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId()
      const {
        deviceId = '',
        portName = ''
      } = reqData
      this.object = `${deviceId}（${portName}）`
      return JSON.stringify({
        deviceId,
        portName,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/otdrTestResult/saveAsTemplate',
    item: 'MENU_TEST_RECORD', // 检测记录
    terminal: 'SAVE_TEMPLATE', // 保存为参数模板
    i18nKey: 'SAVE_TEMPLATE_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId()
      const { deviceName, portName, startTime } = reqData.logData
      this.object = deviceName + '-' + portName + '-' + startTime
      return JSON.stringify({
        ...reqData.logData,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/export/otdrTestResult',
    item: 'MENU_TEST_RECORD', // 检测记录
    terminal: 'BULK_EXPORT', // 导出
    i18nKey: 'TEST_EXPORT', // 导出检测记录
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.terminal = reqData.type === 'all' ? 'EXPORT_ALL' : 'BULK_EXPORT'
      this.i18nKey = reqData.type === 'all' ? 'BATCH_TEST_RECORD_ALL_LOG' : 'BATCH_TEST_RECORD_LOG'
      return JSON.stringify({
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/otdrTestResult/updateCableLength',
    item: 'MENU_TEST_RECORD', // 检测记录
    terminal: 'RENEW_CABLE_LENGTH', // 保存光缆总长至系统
    i18nKey: 'RENEW_CABLE_LENGTH_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.object = reqData.logData.cableNames || ''
      return JSON.stringify({
        ...reqData.logData,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/taskGroup/detect',
    item: 'MENU_LINK_DETECT', // 手动检测
    terminal: 'MENU_LINK_DETECT', // 手动检测
    i18nKey: 'MENU_LINK_DETECT_LOG',
    object: '',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        segmentName = '',
        processName = ''
      } = reqData
      this.object = reqData.segmentName
      return JSON.stringify({
        segmentName,
        processName,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  }
]
